Streaming digital media from a remote source to a local client over a network is an increasingly popular way of obtaining and viewing media such as video using computers, tablets and smartphones.
When viewing video, users have become accustomed to certain traditional playback control functions such as rewind and fast forward. With relatively older technologies based on locally stored analog media such as video cassettes, these playback modes could be achieved by simply altering the speed or direction of rotation of the cassette. In the context of digital media, such modes are sometimes referred to as trickplay, as they typically approximate but do not actually display each frame of a video in the specified order and/or speed to implement the playback. With digital technologies based on locally stored media, trickplay can be implemented by selecting and displaying at an appropriate speed only certain frames of the locally stored digital media.
However, implementing trickplay playback in a streaming digital media context presents difficulties not encountered when implementing such functions for locally stored media. Digital video frames to be selected and displayed to implement trickplay rewind and fast forward functions typically do not preexist locally upon receiving a corresponding trickplay control input from a user, and must be retrieved from a remote source as part of the streaming process. But characteristics of typical network connections present difficulties in retrieving these frames in a manner compatible with performing trickplay playback in a satisfactory manner. For example, it is typically desirable to perform trickplay playback by displaying selected frames at a selected rate, and each for a selected time, in order to achieve a visual cadence that is pleasing to a viewer. However, retrieving the selected frames over a network often involves variable and unpredictable transmission and latency delays in response to frame requests. Such variable and unpredictable delays have to date rendered trickplay playback for streaming digital media itself variable and unpredictable.
Therefore, a need exists for an improved way of retrieving digital video frames over a network to implement trickplay playback functions for streaming video in a manner that alleviates undesirable effects of variable or unpredictable transmission or latency delays on such playback.